package testes;


import logica.pessoa.Pessoa;

import org.junit.Assert;
import org.junit.Test;


public class TestaPessoa {
	
	@Test public void testaExcessaoNome(){
	
		try{
			new Pessoa("p e q u e n o","","", null);  //tetando nome menor que 8 
			Assert.fail();
		}
		

		catch (Exception e) {
			Assert.assertEquals("Nome invalido", e.getMessage());
		}
		
		
		
		
		
		
		try{
			new Pessoa("nome que contem numero 3","","", null);
			Assert.fail();
		}

		catch (Exception e) {
			Assert.assertEquals("Nome invalido", e.getMessage());
		}
		
		
		
		try{
			new Pessoa(null,null,null,null);    //nome naum pode ser null
			Assert.fail();
		}
		
	
		catch (Exception e) {
			Assert.assertEquals("Nome invalido", e.getMessage());
		}
		
		
		
		
		
		try{
			new Pessoa("",null,null, null);    //nome naum pode ser vazio
			Assert.fail();
		}
		
	
		catch (Exception e) {
			Assert.assertEquals("Nome invalido", e.getMessage());
		}
	}
	
	
	
	
	@Test public void testaExcessaoTelefone(){
		
		try {
			new Pessoa("arthur tabira rsrsrs", "(10) 99345678",null, null);     // ddd naum existe
			Assert.fail();
		}
		
		catch (Exception e) {
			Assert.assertEquals("telefone invalido", e.getMessage());
		}
		
		
		try {
			new Pessoa("arthur tabira rsrsrs", "(87) 9934-5678",null, null);     // telefone formato invalido
			Assert.fail();
		}
		
		catch (Exception e) {
			Assert.assertEquals("telefone invalido", e.getMessage());
		}
		
		try {
			new Pessoa("arthur tabira rsrsrs", "(87) 99348a78",null,null);     // telefone comtem letra
			Assert.fail();
		}
		
		catch (Exception e) {
			Assert.assertEquals("telefone invalido", e.getMessage());
		}
		
	}
	
	
	@Test public void testaExcessaoEmail(){

		try {
			new Pessoa("arthur tabira rsrsrs", "(87) 99348978","",null);     
			Assert.fail();
		}
		
		catch (Exception e) {
			Assert.assertEquals("email invalido", e.getMessage());
		}
	
	
		
		
		
		try {
			new Pessoa("arthur tabira rsrsrs", "(87) 99348978","arthur.tabira@gmail", null);     
			Assert.fail();
		}
		
		catch (Exception e) {
			Assert.assertEquals("email invalido", e.getMessage());
		}
		
		
		
		
		
		
		try {
			new Pessoa("arthur tabira rsrsrs", "(87) 99348978","@hotmail.com.brs", null);     
			Assert.fail();
		}
		
		catch (Exception e) {
			Assert.assertEquals("email invalido", e.getMessage());
		}
		
		
		
		
		
		
		try {
			new Pessoa("arthur tabira rsrsrs", "(87) 99348978","arthur@hotmail.com.br.kk", null);     
			Assert.fail();
		}

		catch (Exception e) {
			Assert.assertEquals("email invalido", e.getMessage());
		}
		
	}
	
	@Test public void testaOutros(){
		try{
			Pessoa pessoa = new  Pessoa("arthur tabira", "(83) 99997845","arthur@gmail.com", null);
			Pessoa pessoa2 = new  Pessoa("arthur tabira II", "(83) 99997845","arthur2@gmail.com",null);
			
			Assert.assertEquals("Nome: arthur tabira", pessoa.toString());
			
			Assert.assertTrue(pessoa.equals(pessoa));
			
			Assert.assertFalse(pessoa.equals(pessoa2));
		
		}
		
		catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
}







































